﻿using System;
using System.Windows;

namespace Dsl.Ped.Framework.Common
{
    /// <summary>
    /// Hint used when creating the projections via the factory
    /// </summary>
    /// <typeparam name="T"></typeparam>
    public interface IProjectionHint<T>
        where T : FrameworkElement, new()
    {
        /// <summary>
        /// Default configuration, this is applied on the type <see cref="T"/> when it is instantiated
        /// </summary>
        Action<T, Type> DefaultConfiguration { get; }

        /// <summary>
        /// Custom configuration, this is applied after the <see cref="DefaultConfiguration"/> is applied on the
        /// new instance of <see cref="T"/>
        /// </summary>
        Action<T> CustomConfiguration { get; }
    }
}
